// //1.首先引入 axios
// import axios from 'axios'
 
// //2.创建一个实例
// const api = axios.create({
//     baseURL: 'http://websong.wang:4000', // 所有请求的公共地址部分
//     timeout: 3000 // 请求超时时间 这里的意思是当请求时间超过5秒还未取得结果时 提示用户请求超时
// })
 
// //3.request拦截器
// // 请求相关处理 请求拦截 在请求拦截中可以补充请求相关的配置
// // interceptors axios的拦截器对象
// api.interceptors.request.use(config => {
//      // config 请求的所有信息
//     // console.log(config);
//     return config // 将配置完成的config对象返回出去 如果不返回 请求讲不会进行
// }, err => {
//     // 请求发生错误时的相关处理 抛出错误
//    Promise.reject(err)
// })
 
// //4.response拦截器
// api.interceptors.response.use(res => {
//     // 我们一般在这里处理，请求成功后的错误状态码 例如状态码是500，404，403
//     // res 是所有相应的信息
//     // console.log(res)
//    return Promise.resolve(res)
// }, err => {
//     // 服务器响应发生错误时的处理
//     Promise.reject(err)
// })
 
 
// //5.暴漏出去
// export default api

import axios from "axios";
import store from "@/store/index";
var url = "http://websong.wang:4000";
var api = axios.create({
  baseURL: url,
  timeout: 5000,
});
// 请求前拦截
api.interceptors.request.use((config) => {
  // 加token 处理数据等
  config.headers["token"] = store.getters.token;
  return config;
});
// 请求的响应拦截
api.interceptors.response.use((config) => {
  // 每次请求完毕以后，重新获取token值：必须是在登录后才能刷新
  if (store.getters.token) {
    var { id, username, islogin } = store.state.userInfo.user;
    // console.log(id, username, islogin);
    axios
      .get(url + "/user/token", {
        params: {
          uid: id,
          username,
          islogin,
        },
      })
      .then(({ data }) => {
        if (data.code) {
          store.commit("SET_TOKEN", data.result.token);
        }
      });
  }
  // 容错，后端数据解析
  return config;
});
export default api;
